<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Elasticsearch中的机器学习设置 | ElasticSearch 7.7 权威指南中文版</title>
	<meta name="keywords" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <meta name="description" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
	<link rel="stylesheet" type="text/css" href="../static/styles.css" />
	<script>
	var _link = 'ml-settings.html';
    </script>
</head>
<body>
<div class="main-container">
    <section id="content">
        <div class="content-wrapper">
            <section id="guide" lang="zh_cn">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                            <div style="color:gray; word-break: break-all; font-size:12px;">原英文版地址: <a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.7/ml-settings.html" rel="nofollow" target="_blank">https://www.elastic.co/guide/en/elasticsearch/reference/7.7/ml-settings.html</a>, 原文档版权归 www.elastic.co 所有<br/>本地英文版地址: <a href="../en/ml-settings.html" rel="nofollow" target="_blank">../en/ml-settings.html</a></div>
                        <!-- start body -->
                  <div class="page_header">
<strong>重要</strong>: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" rel="nofollow">当前版本文档</a>。
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch 权威指南 [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="setup.html">安装和设置</a></span>
»
<span class="breadcrumb-link"><a href="settings.html">配置 Elasticsearch</a></span>
»
<span class="breadcrumb-node">Elasticsearch中的机器学习设置</span>
</div>
<div class="navheader">
<span class="prev">
<a href="logging.html">« 日志设置</a>
</span>
<span class="next">
<a href="monitoring-settings.html">监控设置 »</a>
</span>
</div>
<div class="section xpack">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="ml-settings"></a>Elasticsearch中的机器学习设置
</h2>
</div></div></div>

<p>你不需要为使用机器学习做任何设置。它默认就是启用的。</p>
<div class="important admon">
<div class="icon"></div>
<div class="admon_content">
<p>
机器学习使用 SSE4.2 指令，因此只能在CPU <a href="https://en.wikipedia.org/wiki/SSE4#Supporting_CPUs" class="ulink" target="_top">支持</a> SSE4.2 的机器上工作。
如果你这在老的硬件上运行 Elasticsearch，你必须禁用机器学习（通过设置<code class="literal">xpack.ml.enabled</code> 为 <code class="literal">false</code>）。</p>
</div>
</div>
<p>所有这些设置都可以添加到<code class="literal">elasticsearch.yml</code>配置文件中。动态设置还可以通过 <a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">集群更新设置 API</a>来对整个集群进行更新。</p>
<div class="tip admon">
<div class="icon"></div>
<div class="admon_content">
<p>动态设置优先于<code class="literal">elasticsearch.yml</code>文件中的设置。</p>
</div>
</div>
<h4>
<a id="general-ml-settings"></a>常规机器学习设置
</h4>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">node.ml</code>
</span>
</dt>
<dd>
<p>
设置为 <code class="literal">true</code> (默认) 以指定节点为一个<em>机器学习节点</em>。<br>
</p>
<p>
如果在<code class="literal">elasticsearch.yml</code>中设置为<code class="literal">false</code>，则该节点不能运行 作业(job)。
如果设置为<code class="literal">true</code>，但是<code class="literal">xpack.ml.enabled</code>设置为<code class="literal">false</code>，则<code class="literal">node.ml</code>设置会被忽略且节点不能运行 作业(job)。
如果你想运行 作业，集群中必须至少有一个机器学习节点。
</p>
<div class="important admon">
<div class="icon"></div>
<div class="admon_content">
<p>在专用协调节点或专用主节点上，禁用<code class="literal">node.ml</code>角色。</p>
</div>
</div>
</dd>
<dt>
<span class="term">
<code class="literal">xpack.ml.enabled</code>
</span>
</dt>
<dd>
<p>设置为<code class="literal">true</code> (默认) 以启用节点的机器学习。</p>
<p>
如果设置为<code class="literal">false</code>，该节点的机器学习 API 会被禁用。
因此，该节点不能打开作业、启动数据源(datafeeds)或接收与机器学习 API 相关的传输(内部)通信请求。
如果节点是协调节点，来自客户端(包括 Kibana)的机器学习请求也会失败。
有关在特定的 Kibana 实例中禁用机器学习的更多信息，请参考 <a href="https://www.elastic.co/guide/en/kibana/7.7/ml-settings-kb.html" class="ulink" target="_top">Kibana machine learning settings</a>.</p>
<div class="important admon">
<div class="icon"></div>
<div class="admon_content">
<p>
如果要在集群中使用机器学习功能，建议在所有节点上将<code class="literal">xpack.ml.enabled</code> 设置为<code class="literal">true</code>。
这是默认行为。至少，它必须在所有符合主节点条件的节点上启用
如果您想在客户端或 Kibana 中使用机器学习功能，还必须在所有协调节点上启用它。
</p>
</div>
</div>
</dd>
<dt>
<span class="term">
<code class="literal">xpack.ml.inference_model.cache_size</code>
</span>
</dt>
<dd>
允许的最大<code class="literal">推理(inference)</code>缓存大小。推理缓存存在于每个 预处理节点(ingest node) 上的JVM堆中。高速缓存为<code class="literal">推理(inference)</code>处理器提供了更快的处理时间。
该值可以是静态字节大小的值(比如，“2gb”)或分配的堆的总大小的百分比。默认为“40%”。
</dd>
<dt>
<span class="term">
<code class="literal">xpack.ml.inference_model.time_to_live</code>
</span>
</dt>
<dd>
推理模型缓存中模型的生存时间(TTL)。TTL 从上次访问开始计算。
<code class="literal">推理(inference)</code>处理器试图从缓存中加载模型。
如果<code class="literal">推理</code>处理器在 TTL 期间没有接收到任何文档，则被引用的模型被标记为从缓存中移除。
如果稍后有文档被处理，模型将再次加载到缓存中。默认为<code class="literal">5m</code>。
</dd>
<dt>
<span class="term">
<code class="literal">xpack.ml.max_inference_processors</code> (<a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">动态</a>)
</span>
</dt>
<dd>
所有 预处理管道(ingest pipelines) 中允许的<code class="literal">推理</code>类型处理器的总数。
一旦达到限制，就不允许在管道中添加<code class="literal">推理</code>处理器。默认为<code class="literal">50</code>。
</dd>
<dt>
<span class="term">
<code class="literal">xpack.ml.max_machine_memory_percent</code> (<a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">动态</a>)
</span>
</dt>
<dd>
机器学习可用于运行分析过程的机器内存的最大百分比。(这些过程独立于 Elasticsearch JVM。) 默认为 <code class="literal">30</code> %。
该限制基于机器的总内存，而不是当前的可用内存。
如果分配作业会导致机器学习作业的估计内存使用超过限制，则不会将作业分配给节点。
</dd>
<dt>
<span class="term">
<code class="literal">xpack.ml.max_model_memory_limit</code> (<a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">动态</a>)
</span>
</dt>
<dd>
可以为此节点上的任何作业设置的最大 <code class="literal">model_memory_limit</code> 属性值。
如果尝试使用大于此设置值的 <code class="literal">model_memory_limit</code> 属性值创建作业，将会出现错误。
更新此设置时，现有作业不受影响。
更多关于 <code class="literal">model_memory_limit</code> 属性的信息, 参考 <a class="xref" href="ml-put-job.html#put-analysislimits">`analysis_limits`</a>。
</dd>
</dl>
</div>
<div class="variablelist">
<a id="xpack.ml.max_open_jobs"></a>
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">xpack.ml.max_open_jobs</code> (<a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">动态</a>)
</span>
</dt>
<dd>
一个节点上可以同时运行的最大作业数。默认为 <code class="literal">20</code>。
在这种情况下，任务包括异常检测任务和数据帧分析任务。
最大作业数量也受到内存使用的限制。
因此，如果作业的估计内存使用量高于允许值，则在一个节点上运行的作业会更少。
7.1 版之前，此设置是基于节点的非动态设置。
在 7.1 版中，它成为集群范围的动态设置。
因此，节点启动后对其值的更改只有在集群中的每个节点都运行 7.1 版或更高版本时才能使用。
最大允许值为 <code class="literal">512</code>。
</dd>
<dt>
<span class="term">
<code class="literal">xpack.ml.node_concurrent_job_allocations</code> (<a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">动态</a>)
</span>
</dt>
<dd>
每个节点上可以同时处于<code class="literal">opening</code>状态的最大作业数。
通常，作业在进入<code class="literal">open</code>状态之前，会在此状态下停留一段时间。
在打开时必须恢复大型模型的作业会在<code class="literal">opening</code>状态花费更多时间。默认为 <code class="literal">2</code>。
</dd>
</dl>
</div>
<h4>
<a id="advanced-ml-settings"></a>机器学习的高级设置
</h4>
<p>
这些设置适用于高级用例；通常情况下默认值就够用了：
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">xpack.ml.enable_config_migration</code> (<a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">动态</a>)
</span>
</dt>
<dd>
保留的 (Reserved)。
</dd>
<dt>
<span class="term">
<code class="literal">xpack.ml.max_anomaly_records</code> (<a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">动态</a>)
</span>
</dt>
<dd>
每个 存储桶(bucket) 输出的最大记录数。默认值为<code class="literal">500</code>.
</dd>
<dt>
<span class="term">
<code class="literal">xpack.ml.max_lazy_ml_nodes</code> (<a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">动态</a>)
</span>
</dt>
<dd>
<p>
延迟启动机器学习节点的数量。
在打开第一个机器学习作业之前不需要 ML 节点的情况下非常有用。
默认值为 <code class="literal">0</code>，最可可接受的值为 <code class="literal">3</code>。
如果当前 ML 节点的数量 <code class="literal">&gt;=</code> 该设置，则认为不再有可用的延迟节点，因为已经提供了所需的节点数量。  
当作业在此设置值为 <code class="literal">&gt;0</code> 的情况下打开，并且没有可以接受该作业的节点时，该作业将保持<code class="literal">OPENING</code>状态，直到新的 ML 节点添加到集群，然后该作业会被分配在该节点上运行。
</p>
<div class="important admon">
<div class="icon"></div>
<div class="admon_content">
<p>该设置假设一些外部进程能够将 ML 节点添加到集群中。此设置仅在与此类外部进程结合使用时有用。</p>
</div>
</div>
</dd>
<dt>
<span class="term">
<code class="literal">xpack.ml.process_connect_timeout</code> (<a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">动态</a>)
</span>
</dt>
<dd>
与 Elasticsearch JVM 分开运行的机器学习进程的连接超时时间。默认为 <code class="literal">10s</code>。
一些机器学习运算是由独立于 Elasticsearch JVM 运行的进程完成的。
当这些进程启动时，它们必须连接到 Elasticsearch JVM。
如果此类进程未在此设置指定的时间内连接，则认为该进程已失败。
默认为 <code class="literal">10s</code>，此设置的最小值是 <code class="literal">5s</code>。
</dd>
</dl>
</div>
</div>
<div class="navfooter">
<span class="prev">
<a href="logging.html">« 日志设置</a>
</span>
<span class="next">
<a href="monitoring-settings.html">监控设置 »</a>
</span>
</div>
</div>

                  <!-- end body -->
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                        
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </section>
</div>
<script src="../static/cn.js"></script>
</body>
</html>